package com.mef.smsplat.util;


import java.util.List;
import java.util.Map;
import org.springframework.ui.freemarker.FreeMarkerTemplateUtils;

import com.mef.smsplat.domain.TemplateInfoDomain;

import freemarker.template.Configuration;
import freemarker.template.Template;

/**
 * FreeMarker模版工具类
 * @author hc24
 *
 */
public class FreeMarkerUtil {
	
	private static StringTemplateLoader stringTemplateLoader=new StringTemplateLoader();
	
	/** 刷新模版 */
	public static void refreshTemplate(List<TemplateInfoDomain> tempList){
		for(int i=0;i<tempList.size();i++){
			stringTemplateLoader.addTemplate(tempList.get(i).getTemplateId(), tempList.get(i).getTemplateContent());
		}
	}
	
	public static String processTemplateIntoString(String templateId,Map<String, Object> model){
		Configuration cfg = new Configuration(); 
        cfg.setTemplateLoader(stringTemplateLoader);    
        cfg.setDefaultEncoding("UTF-8");    
   
        try {
			Template template = cfg.getTemplate(templateId);
			return FreeMarkerTemplateUtils.processTemplateIntoString(template, model);
		} catch (Exception e) {
			throw new RuntimeException("读取或者根据模版生成数据出错",e);
		} 
		
	}
}
